草庐IT

android - 使用 onRetainNonConfigurationInstance 的替代方法

全部标签

ruby - 在 Ruby 中初始化常量的正确方法是什么?

我有一个简单的类,它定义了一些常量,例如:moduleFooclassBarBAZ="bof"...在我告诉Rake运行我所有的Test::Unit测试之前,一切都是小狗和彩虹。当它发生时,我会收到警告:bar.rb:3:warning:alreadyinitializedconstantBAZ我的习惯是通过使常量初始化有条件来避免这些警告,例如:...BAZ="bof"unlessconst_defined?:BAZ...这似乎解决了问题,但有点乏味,而且我从未见过其他人以这种方式初始化常量。这让我觉得我可能做错了。有没有更好的方法来初始化不会产生警告的常量?更新:通过更详细地说明我

ruby - 使用 Ruby 从串行端口读取

我正在尝试使用ruby​​对串行端口执行简单的读+写操作。这是我目前得到的代码。我正在使用serialportgem。require'rubygems'require'serialport'ser=SerialPort.new("/dev/ttyACM0",9600,8,1,SerialPort::NONE)ser.write"ab\r\n"putsser.read但脚本在运行时挂起。 最佳答案 我遇到了问题。这是因为使用ser.read告诉Ruby永远保持读取,而Ruby永远不会停止读取并因此挂起脚本。解决方案是只读取特定数量的字

ruby - 如何拦截 ruby​​ 中的方法调用?

我目前有一个父类(superclass),它有一个函数,我希望所有子类在它的每个函数中调用该函数。该函数的行为应该像rails中的before_filter函数,但我不确定如何去实现before_filter。这是一个例子classSuperclassdefbefore_each_methodputs"BeforeMethod"#thisissupposedtobeinvokedbyeachextendingclass'methodendendclassSubclass 最佳答案 这是一种方法:classSuperclassdefb

ruby-on-rails - 我们什么时候应该考虑使用 private 或 protected?

只是想知道,我们什么时候才真正必须对模型中的某些方法使用private或protected?有时我无法不在private或protected中对我的方法进行分组。我只是保持原样。但我知道这一定是一种不好的做法,否则这两个分组将不会在编程中创建。谢谢。 最佳答案 如果你打算在外部调用一个方法,record.method(),然后是“public”如果只在内部使用,self.method(),然后是“private”如果你计划在内部使用它,而且在后代中使用它,self.method()#insubclass,然后“protected”

ruby-on-rails - 如何使用 I18n gem 翻译电子邮件正文?

我正在使用RubyonRails3.1.1,我正在尝试翻译电子邮件正文。我创建/声明了所有必要的“东西”(YAML文件、键/值对……)以使I18ngem正常工作:使用默认语言(:en)可以毫无问题地发送电子邮件).然后我添加了一种新语言,并完成了使I18ngem与另一种语言一起工作并在URL中始终获得locale=de参数所需要做的一切。classApplicationController然而,当我发送电子邮件时,即使正确设置了区域设置(例如:locale=de),发送的电子邮件信息也不会被翻译(那些仍然使用默认的:en语言)。如何使I18n翻译电子邮件正文?我阅读了Localized

ruby - 使用 RVM 使用 sinatra 应用程序加载 Active Record gem 时出错

我为我正在启动的sinatra应用程序设置了一个项目级RVMgemset,它将使用ActiveRecord连接到本地数据库。为了测试它,我尝试运行以下测试应用程序:测试.rbrequire'rubygems'#maynotbeneeded,dependingonplatformrequire'sinatra'require'activerecord'classArticle"sqlite3",:database=>"hw.db")Test.first.contentend(摘自这个问题的答案:What'sthebestwaytotalktoadatabasewhileusingSina

ruby-on-rails - 为 memcached 和 Rails 组合片段和对象缓存的最佳方法

假设您有一个显示最新帖子的页面片段,并且您在30分钟后将其过期。我在这里使用Rails。30.minutes)do%>...显然,如果该片段存在,您不需要进行数据库查找来获取最新的帖子,因此您也应该能够避免这种开销。我现在正在做的是Controller中类似这样的东西,它似乎可以工作:unlessRails.cache.exist?"views/recent_posts"@posts=Post.find(:all,:limit=>20,:order=>"updated_atDESC")end这是最好的方法吗?安全吗?我不明白的一件事是为什么片段的键是“recent_posts”,而稍后

ruby - 如何在不使用 block 的情况下在 Ruby 中计算 'map'?

我知道我可以用Ruby做到这一点:['a','b'].mapdo|s|s.to_symend得到这个:[:a,:b]我正在寻找一种不使用block的更简洁的方法。不幸的是,这不起作用:['a','b'].map#to_sym我可以比使用初始代码做得更好吗? 最佳答案 阅读一些关于Symbol#to_proc的内容:['a','b'].map(&:to_sym)#or['a','b'].map&:to_sym#Eitherwillresultin[:a,:b]如果您使用的是Ruby1.8.7或更高版本,或者如果您使用的是Rails,则

ruby - 我可以通过猴子修补 NilClass 来为缺少的方法返回 nil 吗?

在其他语言中(例如objective-c)在nil对象上调用方法会静默失败并返回nil但在ruby​​中你会得到这样的错误...undefinedmethod`some_method'fornil:NilClass这(对我而言)会产生如下代码:ifsome_object&&some_object.cool?#insteadofifsome_object.cool?#dosomecoolstuffend或some_object.do_awsome_thingifsome_object这一切都显得倒退和怪异。两个问题我做错了什么,处理可能出现nil对象的正确方法是什么如果我只是猴子修补ni

ruby - 使用 ruby​​ 中的 SHA256 哈希算法计算符合 RFC 2104 的 HMAC

我在浏览亚马逊产品广告APIRESTsignaturedocs时卡在了#8CalculateanRFC2104-compliantHMACwiththeSHA256hashalgorithmusingthestringabovewithour"dummy"SecretAccessKey:1234567890.Formoreinformationaboutthisstep,seedocumentationandcodesamplesforyourprogramminglanguage.没关系,在CalculatingaSHAhashwithastring+secretkeyinpytho